<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app"></div>
<!--react的核心库-->
<script type="text/javascript" src="../utils/react.development.js"></script>
<!--react的扩展库，专门用于操作DOM-->
<script type="text/javascript" src="../utils/react-dom.development.js"></script>
<!--引入babel，用于解析jsx语法为原生js语法-->
<script type="text/javascript" src="../utils/babel.min.js"></script>

<script type="text/babel">
    // 数据驱动页面  state类比vue组件的data
     class MyComponent extends React.Component{
         constructor(props) {
             super(props);
             this.state={name:"xm",age:18,likeVue:true}
             this.realLick=this.changeLick.bind(this)
         }
         //类中定义的所有方法默认开启严格模式 如果没有定义实例则纸箱undefined
         changeLick(){
             //状态需要通过专门的api进行响应式改变否则不触发页面更新
             this.setState({likeVue:!this.state.likeVue})
         }
         //render函数是构造函数创建的实例调用的 会调用n+1次 点击数据改变的次数加首次渲染的次数
        render(){
        return (
            <div>
                <h2>我是类式组件</h2>
                <span onClick={this.realLick}>{this.state.name}今年{this.state.age}{this.state.likeVue?'喜欢':'不喜欢'}Vue</span>
            </div>
        )}
     }
    ReactDOM.render(<MyComponent/>,document.querySelector('#app'))
</script>
</body>
</html>
